As the communication bandwidth in the crowded frequency spectrum becomes an increasingly scarce and valuable commodity, significant efforts are being applied to devise methods that enable more efficient use of available bandwidth. In addition, significant efforts are being applied to an alternative form of radio technology known as Ultra Wideband (UWB) technology.
UWB technology involves the transmission and reception of very low power, extremely short-duration pulses for use in multiple-access communications, radar, and positioning applications, among other things. As its name implies, UWB signals have an extremely wide frequency bandwidth on the order of one or more gigahertz (GHz). Because UWB communication systems are based on communicating extremely short-duration pulses (e.g., picoseconds in duration), such systems are also known as impulse radio systems. Impulse radio systems are described in a series of patents, including U.S. Pat. No. 4,641,317 (issued Feb. 3, 1987), U.S. Pat. No. 4,743,906 (issued May 10, 1988), U.S. Pat. No. 4,813,057 (issued Mar. 14, 1989), U.S. Pat. No. 4,979,186 (issued Dec. 18, 1990), and U.S. Pat. No. 5,363,108 (issued Nov. 8, 1994) to Larry W. Fullerton, and U.S. Pat. No. 5,677,927 (issued Oct. 14, 1997), U.S. Pat. No. 5,687,169 (issued Nov. 11, 1997), and U.S. Pat. No. 5,832,035 (issued Nov. 3, 1998) to Larry W. Fullerton, et al. These patents are incorporated herein by reference.
Impulse radio systems are radically different from conventional narrowband radio systems including multiple access spread-spectrum (also referred to as wideband) systems such as Code Division Multiple Access (CDMA), Time Division Multiple Access (TDMA), Frequency Division Multiple Access (FDMA), and Orthogonal Frequency Division Multiplexing (OFDM) systems. Unlike such non-impulse radio systems, which use continuous sinusoidal waveforms for transmitting information, an impulse radio transmitter emits a train of short electromagnetic pulses, which are shaped to approach a Gaussian monocycle. The impulse transmitter generates pulses and applies them to a specified transmission medium, via a coupler, such as an antenna, which electromagnetically radiates the pulses for reception by an impulse radio receiver. The transmitter may also modulate the generated pulses to convey information.
The impulse radio receiver is a single-stage direct conversion receiver with a correlator front end that coherently converts the received pulses into a baseband signal based on a priori knowledge of the relative timing of the pulses. The impulse radio receiver depends, in part, on processing gain to achieve rejection of unwanted signals. The correlator detects and integrates the desired received pulses coherently, while undesired noise signals are integrated non-coherently. In this manner, the impulse radio receiver effectively extracts the low power pulse train signal from the noise. Additionally, an impulse radio transmitter may modulate multiple pulses to represent a single data bit, thus enabling an impulse radio receiver to integrate the multiple pulses to achieve a signal-to-noise ratio sufficient to recover the data bit over longer distances or in the presence of interference. Because of these high processing gains, impulse radio systems are relatively immune to unwanted signals and interference that limit the performance of conventional (non-impulse) radio systems. Furthermore, these high processing gains allow for much higher dynamic ranges than those commonly achieved by conventional spread-spectrum systems.
Impulse radio systems typically transmit and receive pulses in accordance with a time-hopping code that specifies the relative time positions of the pulses. As such, the time-hopping code defines a communication channel that can be considered as a unidirectional data path for communicating information at high speed. The time-hopping code, which may be locally generated in real-time or stored in a memory storage device, may be applied in accordance with a periodic timing signal that corresponds to the data-rate of the multi-state information signal. The data rate of the impulse radio transmission may, for example, be a fraction of a periodic timing signal that is used as a time base or time reference. In this manner, the time-hopping code determines the nominal positions of the pulses.
In order to communicate information over such channels, impulse radio transmitters may use one or more forms of modulation such as pulse position modulation, flip modulation, or vector modulation. Pulse position modulation is a form of time modulation where pulse positions are varied from nominal positions based on instantaneous samples of a modulating information signal. The modulating information signal may, for example, be a multi-state information signal, such as a binary signal. Under this arrangement, each pulse is time modulated by adjusting its position to one of two or more possible times. For example, in order to send a “0” binary bit, the pulse may be offset from a nominal position by about −50 picoseconds. For a “1” binary bit, the pulse may be offset from the nominal position by about +50 picoseconds. One-of-many Position Modulation (OMPM) is described in co-owned, co-pending patent application titled “Apparatus, System and Method for One-of-Many Position Modulation in an Impulse Communications System,” application Ser. No. 09/875,290, filed Jun. 7, 2001, assigned to the assignee of the present invention and incorporated herein by reference.
Flip modulation is a form of modulation where pulses may be inverted, or flipped, depending on the modulating information signal. For example, in order to send a “0” binary bit, a non-inverted pulse may be transmitted at its nominal position. For a “1” binary bit, an inverted pulse may be transmitted. Pulse position and flip modulation can also be combined. Flip modulation is further described in co-owned, co-pending patent application titled “Apparatus, System and Method for FLIP Modulation in an Impulse Radio Communications System,” application Ser. No. 09/537,692, filed Mar. 29, 2000, assigned to the assignee of the present invention and incorporated herein by reference.
Vector modulation includes the steps of generating and transmitting a series of time-modulated pulses, each pulse delayed by one of at least four pre-determined time delay periods and representative of at least two data bits of information, and receiving and demodulating the series of time-modulated pulses to estimate the data bits associated with each pulse. Vector modulation techniques are further described in patent application titled “Vector Modulation System and Method for Wideband Impulse Radio Communications,” application Ser. No. 09/169,765, filed Dec. 9, 1999, assigned to the assignee of the present invention, and incorporated herein by reference.
Coding techniques have been used in conventional spread-spectrum code division multiple access (SS-CDMA) systems to accommodate multiple users by permitting them to use the same frequency bandwidth at the same time. Direct sequence CDMA systems employ pseudo-noise (PN) codewords generated at a transmitter to “spread” the bandwidth occupied by transmitted data beyond the minimum required by the data. The conventional SS-CDMA systems employ a family of orthogonal or quasi-orthogonal spreading codes, with a pilot spreading code sequence synchronized to the family of codes. Each user is assigned one of the spreading codes as a spreading function. One such spread-spectrum system is described in U.S. Pat. No. 4,901,307 entitled “Spread-Spectrum Multiple Access Communication System Using Satellite or Terrestrial Repeaters” by Gilhousen et al.
Dent et al. in U.S. Pat. No. 5,353,352 disclose a multiple access coding technique for radio communications, such as cellular systems, in which individual information signals are encoded with a common block error-correction code. The information signals are assigned a unique scrambling mask, or signature sequence, taken from a set of scrambling masks having selected correlation properties. The set of scrambling masks is selected such that the correlation between the modulo-2 sum of two masks with any codeword in the block code is a constant magnitude, independent of the mask set and the individual masks being compared. In one embodiment, when any two masks are summed using modulo-2 arithmetic, the Walsh transformation of that sum results in a maximally flat Walsh spectrum.
Awater et al. in U.S. Pat. No. 5,862,182 disclose enhancing encoding/transmission of information in an OFDM Wireless Local Area Network (WLAN) system using complementary codes. The complementary codes are converted into phase vectors and the resulting phase vectors are then used to modulate respective carrier signals. The modulated result is then transmitted to a receiver which decodes the received signals to recover the encoded information.
Awater et al. in U.S. Pat. No. 6,005,840 disclose a combined complementary encoder and modulation WLAN system for an OFDM transmitter system that combines complementary coding and modulation and exploits the similarity of their mathematical structure to reduce implementation complexity. Additionally, the combined complementary encoder and modulation system can be modified to provide scalability, which allows a transmitter to operate in various transmission environments.
Unlike conventional spread-spectrum systems, impulse radio systems typically do not employ time-hopping codes for the purpose of energy spreading. This is because the monocycle pulses themselves have an inherently wide bandwidth. Instead, the impulse radio systems use the time-hopping codes primarily for channelization, energy smoothing in the frequency domain, and interference suppression.
In practice, decoding errors are minimized using distinctive time-hopping codes with suitable autocorrelation and cross-correlation properties. The cross-correlation between any two time-hopping codes should be low for minimal interference between multiple users in a communications system or between multiple target reflections in radar and positioning applications. At the same time, the autocorrelation property of a time-hopping code should be steeply peaked, with small side-lobes. Maximally peaked time-hopping code autocorrelation yields optimal acquisition and synchronization properties for communications, radar and positioning applications.
Specialized coding techniques can be employed to specify temporal and/or non-temporal pulse characteristics to produce a pulse train having certain spectral and/or correlation properties. As stated above, coding provides a method of establishing independent communication channels. Specifically, families of time-hopping codes can be designed such that the number of pulse coincidences between two pulse trains produced by any two codes will be no more than some maximum number (e.g., four), regardless of the time offset between the two pulse trains simultaneously arriving at an impulse radio receiver. Coding can also be used to facilitate signal acquisition. Specifically, coding techniques can be used to produce pulse trains with a desirable main-lobe-to-side-lobe ratio and to reduce acquisition algorithm search space.
Typically, a code consists of a number of code elements having integer or floating-point values. A code element value may specify a single pulse characteristic or may be subdivided into multiple components, each specifying a different pulse characteristic. Code element or code component values typically map to a pulse characteristic value layout that may be fixed or non-fixed and may involve value ranges, discrete values, or a combination of value ranges and discrete values. A value range layout specifies a range of values that is divided into components that are each subdivided into subcomponents, which can be further subdivided, as desired. These components and subcomponents are also referred to as frames and subframes. A discrete value layout involves uniformly or non-uniformly distributed discrete values. A non-fixed layout (also referred to as a delta layout) involves delta values relative to some reference value. Fixed and non-fixed layouts, and approaches for mapping code element/component values, are described in co-owned, co-pending applications, titled “Method for Specifying Pulse Characteristics Using Codes,” application Ser. No. 09/638,153 and “A Method and Apparatus for Mapping Pulses to a Non-Fixed Layout,” application Ser. No. 09/638,151, both filed on Aug. 15, 2000, both of which are incorporated herein by reference.
A fixed or non-fixed characteristic value layout may include a non-allowable region within which a pulse characteristic value is disallowed. A method for specifying non-allowable regions is described in co-owned, co-pending application titled “A Method for Specifying Non-Allowable Pulse Characteristics,” application Ser. No. 09/638,154, filed Aug. 15, 2000, and incorporated herein by reference. A related method that conditionally positions pulses depending on whether code elements map to non-allowable regions is described in co-owned, co-pending application, titled “A Method and Apparatus for Positioning Pulses Using a Layout having Non-Allowable Regions,” application Ser. No. 09/637,878 filed Aug. 15, 2000, and incorporated herein by reference.
The signal of a coded pulse train can be generally expressed by:             s      tr              (        k        )              ⁢          (      t      )        =            ∑      j        ⁢                            (                      -            1                    )                          f          j                      (            k            )                              ⁢              a        j                  (          k          )                    ⁢              ω        ⁢                  (                                                                      c                  j                                      (                    k                    )                                                  ⁢                t                            -                              T                j                                  (                  k                  )                                                      ,                          b              j                              (                k                )                                              )                    where k is the index of a transmitter, j is the index of a pulse within its pulse train, (−1)fj(k), aj(k), bj(k), cj(k), and ω(t,bj(k)) are the coded polarity, pulse amplitude, pulse type, pulse width, and normalized pulse waveform of the jth pulse of the kth transmitter, and Tj(k) is the coded time shift of the jth pulse of the kth transmitter. Note: When a given non-temporal characteristic does not vary (i.e., remains constant for all pulses), it becomes a constant in front of the summation sign.
Various numerical code generation methods can be employed to produce codes having certain correlation and spectral properties. Such codes typically fall into one of two categories: designed codes and pseudorandom codes. A designed code may be generated using a quadratic congruential, hyperbolic congruential, linear congruential, Costas array, or other such numerical code generation technique designed to generate codes having certain correlation properties. A pseudorandom code may be generated using a computer's random number generator, binary shift-register(s) mapped to binary words, a chaotic code generation scheme, or the like. Such ‘random-like’ codes are attractive for certain applications since they tend to spread spectral energy over multiple frequencies while having ‘good enough’ correlation properties, whereas designed codes may have superior correlation properties but possess less suitable spectral properties. Detailed descriptions of numerical code generation techniques are included in a co-owned, co-pending patent application titled “A Method and Apparatus for Positioning Pulses in Time,” application Ser. No. 09/638,150, filed Aug. 15, 2000, and incorporated herein by reference.
It may be necessary to apply predefined criteria to determine whether a generated code, code family, or a subset of a code is acceptable for use with a given UWB application. Criteria may include correlation properties, spectral properties, code length, non-allowable regions, number of code family members, or other pulse characteristics. A method for applying predefined criteria to codes is described in a co-owned, co-pending application, titled “A Method and Apparatus for Specifying Pulse Characteristics using a Code that Satisfies Predefined Criteria,” application Ser. No. 09/638,152, filed Aug. 15, 2000, and incorporated herein by reference.
One of the limitations of coding techniques like those described above is that they tend to produce a limited number of codes having desirable correlation properties. Because UWB technology is applicable to a wide variety of applications including communications, radar, and positioning, large numbers of codes are required to support large numbers of impulse radio systems. Accordingly, there exists a need for a coding method capable of generating large numbers of codes having desirable correlation properties.